/**
 * 
 */
package fr.utbm.gi.vi51.slizers.framework.environment;

import org.janusproject.kernel.address.AgentAddress;

import fr.utbm.gi.vi51.slizers.framework.agent.AbstractSituatedObject;

/**
 * Implementation of an environment influence.
 * 
 * @author Tarik Belabbas
 * 
 */
public abstract class Influence< InfluencableObject extends AbstractSituatedObject >
{
	/**
	 * The emitter of the influence.
	 */
	private AgentAddress emitter = null;

	/**
	 * Parameterized constructor.
	 * 
	 * @param _emitter
	 * @param _influencedObject
	 */
	public Influence( AgentAddress _emitter )
	{
		this.emitter			= _emitter;
	}
	
	/**
	 * Returns the emitter of the influence.
	 * 
	 * @return the emitter of the influence
	 */
	public AgentAddress getEmitter()
	{
		return this.emitter;
	}
	
	/**
	 * Sets the emitter of the influence.
	 * 
	 * @param _emitter the emitter of the influence
	 */
	public void setEmitter( AgentAddress _emitter )
	{
		assert ( emitter != null );
		
		this.emitter = _emitter;
	}
}
